//
//  ComprehensiveObjCSyntaxTestRunner.h
//  test_simple_project
//
//  综合Objective-C语法测试运行器
//  统一执行所有语法特性测试
//

#import <Foundation/Foundation.h>

// 导入所有测试类
#import "ModernLiteralsTest.h"
#import "FastEnumerationAndSynthesisTest.h"
#import "GenericsAndNullabilityTest.h"
#import "SelectorEncodingPreprocessorTest.h"
#import "AutoreleasePoolRuntimeTest.h"
#import "ComprehensiveSyntaxTest.h"
#import "ExceptionHandlingTest.h"

@interface ComprehensiveObjCSyntaxTestRunner : NSObject

// 单例实例
+ (instancetype)sharedRunner;

// 执行所有测试
- (void)runAllTests;

// 分类别执行测试
- (void)runBasicSyntaxTests;          // 基础语法测试
- (void)runModernLiteralTests;        // 现代字面量测试
- (void)runEnumerationSynthesisTests; // 快速枚举和属性合成测试
- (void)runGenericsNullabilityTests;  // 泛型和可空性测试
- (void)runSelectorEncodingTests;     // 选择器和编码测试
- (void)runAutoreleaseRuntimeTests;   // 自动释放池和运行时测试
- (void)runExceptionHandlingTests;    // 异常处理测试

// 测试统计和报告
- (void)generateTestReport;
- (NSDictionary *)getTestStatistics;

@end

// 测试结果结构
@interface ObjCSyntaxTestResult : NSObject

@property (strong, nonatomic) NSString *testCategoryName;
@property (assign, nonatomic) NSUInteger totalTests;
@property (assign, nonatomic) NSUInteger passedTests;
@property (assign, nonatomic) NSUInteger failedTests;
@property (strong, nonatomic) NSDate *startTime;
@property (strong, nonatomic) NSDate *endTime;
@property (strong, nonatomic) NSMutableArray<NSString *> *testDetails;

- (instancetype)initWithCategoryName:(NSString *)categoryName;
- (NSTimeInterval)executionTime;
- (double)successRate;

@end